#pragma once

#ifndef __3DVIEWERTEXTUREMANAGER_H__
#define __3DVIEWERTEXTUREMANAGER_H__

#include "3DViewerDataClasses.h"
#include <list>


class CTextureManager
{
public:
	CTextureManager(void) {};
	~CTextureManager(void) {};

//attributes
private:
	std::list<CTexture*> m_textures;

public:	
	std::list<unsigned int> m_deletedTextures;

private:
	CTexture* FindTexture(CString URI);

public:
	CTexture* AddTexture(CModel *model, CString URI);
	bool RemoveTexture(CModel *model, CTexture *texture);
	void ChangeTexture(CTexture* texture, CString URI);
	unsigned int GetTextureId(CString URI) {return FindTexture(URI)->m_OpenglId;};
};

#endif